home *** CD-ROM | disk | FTP | other *** search
/ Garden Fax: Indoor Plants / Garden Fax - Indoor Plants (1991)(CDTV Publishing)[!].iso / system / basicdemos / bitplanes (.txt) < prev    next >
AmigaBASIC Source Code  |  1991-04-17  |  2KB  |  91 lines

  1. REM <<      AmigaBasic        >>  
  2. REM << Find Ptrs to BitPlanes >>
  3. REM << Carolyn Scheppner  CBM >>
  4.  
  5. depth = 5
  6. x = 320
  7. y = 200
  8.  
  9. SCREEN 2,x,y,depth,1
  10. WINDOW 2,"Click Mouse to Exit",,7,2
  11.  
  12. GOSUB GetScrAddrs
  13.  
  14. PRINT
  15. PRINT "STRUCTURE ADDRESSES:"
  16. PRINT "Window -----"sWindow&
  17. PRINT "Screen -----"sScreen&
  18. PRINT "ViewPort ---"sViewPort&
  19. PRINT "RastPort ---"sRastPort&
  20. PRINT "BitMap -----"sBitMap&
  21. PRINT "ColorMap ---"sColorMap&
  22. PRINT "ColorTable -"colorTab&
  23. PRINT
  24. PRINT "OTHER VALUES:"
  25. PRINT "Width ------"scrWidth%
  26. PRINT "Height -----"scrHeight%
  27. PRINT "Depth ------"scrDepth%
  28. PRINT "Colors -----"nColors%
  29. PRINT
  30. PRINT "BITPLANE ADDRESSES:"
  31. FOR k = 0 TO scrDepth%-1
  32.    PRINT "BitPlane" k "---"bPlane&(k)
  33. NEXT
  34.  
  35. LOCATE 2,1
  36. PRINT TAB(26)"RGB VALUES:":PRINT
  37. FOR k = 0 TO (nColors%/2)-1
  38.    COLOR k: PRINT TAB(25)"* ";: COLOR 1
  39.    PRINT HEX$(PEEKW(colorTab&+(2*k)))
  40. NEXT
  41. LOCATE 4,1
  42. FOR k = (nColors%/2) TO nColors%-1 
  43.    COLOR k: PRINT TAB(33)"* ";: COLOR 1
  44.    PRINT HEX$(PEEKW(colorTab&+(2*k)))
  45. NEXT
  46.  
  47. PRINT:PRINT:PRINT TAB(25)"Poking->"
  48.  
  49. REM << Test - Random Poke to the BitPlanes >>
  50. bytesPerRow% = scrWidth% / 8
  51. rowByte% =  33
  52. FOR y = 178 TO 186
  53.   FOR k = 0 TO depth-1
  54.     POKE bPlane&(k)+(y*bytesPerRow%)+rowByte%, INT(255*RND)
  55.   NEXT  
  56. NEXT
  57.  
  58. WaitForClick:
  59. SLEEP
  60. IF MOUSE(0) = 0 THEN WaitForClick
  61.  
  62.  
  63. Cleanup:
  64. WINDOW CLOSE 2
  65. SCREEN CLOSE 2
  66. END
  67.  
  68. GetScrAddrs:
  69. REM - Get addresses of screen structures
  70.    sWindow&   = WINDOW(7)
  71.    sScreen&   = PEEKL(sWindow& + 46)
  72.    sViewPort& = sScreen& + 44
  73.    sRastPort& = sScreen& + 84
  74.    sColorMap& = PEEKL(sViewPort& + 4)
  75.    colorTab&  = PEEKL(sColorMap& + 4)
  76.    sBitMap&   = PEEKL(sRastPort& + 4)
  77.  
  78.    REM - Get screen parameters
  79.    scrWidth%  = PEEKW(sScreen& + 12)
  80.    scrHeight% = PEEKW(sScreen& + 14)
  81.    scrDepth%  = PEEK(sBitMap& + 5)
  82.    nColors%   = 2^scrDepth%
  83.  
  84.    REM - Get addresses of Bit Planes 
  85.    FOR kk = 0 TO scrDepth% - 1
  86.       bPlane&(kk) = PEEKL(sBitMap&+8+(kk*4))
  87.    NEXT
  88. RETURN
  89.  
  90.  
  91.